Advertisement
Guest User

Untitled

a guest
Feb 24th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.43 KB | None | 0 0
  1. #include <avr/io.h>
  2.  
  3. #define signal_L r24 ; 25
  4. #define signal_H r25
  5.  
  6. #define acc2 r22 ; 23, 8 msb part of the 24 bit signal
  7. #define acc1 r20 ; 21, 8 middle
  8. #define acc0 r18 ; 19, 8 lsb part of the 24 bit signal
  9.  
  10. #define dds0 r26
  11. #define dds1 r28
  12. #define dds2 r30
  13.  
  14. ;#define ZL r30
  15. ;#define ZH r31
  16. ;.def YL = 29
  17. ;.def YH = 28
  18. ;.def XL = 27
  19. ;.def XH = 26
  20.  
  21.  
  22. #define DDS_CONDITION 2
  23. #define DDS_CREG _SFR_IO_ADDR(PORTB)
  24.  
  25. ; -------------------------------------------------
  26. .global SigGen
  27. .func SigGen
  28.  
  29. SigGen:
  30. ;mov r31, signal_H ; setup Z pointer hi
  31. ;mov r30, signal_L ; setup Z pointer lo
  32.  
  33. ldi r31,hi8(sine) ; setup Z pointer hi
  34. ldi r30,lo8(sine) ; sine wave
  35.  
  36. ; clear accumulator
  37. ldi dds0, 0x00
  38. ldi dds1, 0x00
  39.  
  40. loop_dds:
  41. add dds0, acc0
  42. adc dds1, acc1
  43. adc dds2, acc2
  44. lpm
  45. out _SFR_IO_ADDR(PORTD), r0
  46. sbis DDS_CREG, DDS_CONDITION
  47. rjmp loop_dds
  48. .endfunc
  49.  
  50. .org 0x100
  51.  
  52. sine:
  53. .byte 0x80,0x83,0x86,0x89,0x8c,0x8f,0x92,0x95,0x98,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae
  54. .byte 0xb0,0xb3,0xb6,0xb9,0xbc,0xbf,0xc1,0xc4,0xc7,0xc9,0xcc,0xce,0xd1,0xd3,0xd5,0xd8
  55. .byte 0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,0xe8,0xea,0xec,0xed,0xef,0xf0,0xf2,0xf3,0xf5
  56. .byte 0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfc,0xfd,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff
  57. .byte 0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfd,0xfc,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7
  58. .byte 0xf6,0xf5,0xf3,0xf2,0xf0,0xef,0xed,0xec,0xea,0xe8,0xe6,0xe4,0xe2,0xe0,0xde,0xdc
  59. .byte 0xda,0xd8,0xd5,0xd3,0xd1,0xce,0xcc,0xc9,0xc7,0xc4,0xc1,0xbf,0xbc,0xb9,0xb6,0xb3
  60. .byte 0xb0,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x98,0x95,0x92,0x8f,0x8c,0x89,0x86,0x83
  61. .byte 0x80,0x7c,0x79,0x76,0x73,0x70,0x6d,0x6a,0x67,0x63,0x60,0x5d,0x5a,0x57,0x54,0x51
  62. .byte 0x4f,0x4c,0x49,0x46,0x43,0x40,0x3e,0x3b,0x38,0x36,0x33,0x31,0x2e,0x2c,0x2a,0x27
  63. .byte 0x25,0x23,0x21,0x1f,0x1d,0x1b,0x19,0x17,0x15,0x13,0x12,0x10,0x0f,0x0d,0x0c,0x0a
  64. .byte 0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x03,0x02,0x01,0x01,0x00,0x00,0x00,0x00,0x00
  65. .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x05,0x06,0x07,0x08
  66. .byte 0x09,0x0a,0x0c,0x0d,0x0f,0x10,0x12,0x13,0x15,0x17,0x19,0x1b,0x1d,0x1f,0x21,0x23
  67. .byte 0x25,0x27,0x2a,0x2c,0x2e,0x31,0x33,0x36,0x38,0x3b,0x3e,0x40,0x43,0x46,0x49,0x4c
  68. .byte 0x4f,0x51,0x54,0x57,0x5a,0x5d,0x60,0x63,0x67,0x6a,0x6d,0x70,0x73,0x76,0x79,0x7c
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement